﻿using BCEntity.TMS.TrainingSite.TrainingSiteBusinessHours;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BCData.TMS.TrainingSite.TrainingSiteBusinessHours
{
    /// <summary>
    /// 培训点营业时间
    /// </summary>
    public interface ITrainingSiteBusinessHoursData
    {
        /// <summary>
        /// 添加培训点营业时间
        /// </summary>
        /// <param name="entities">培训点营业时间信息</param>
        /// <returns></returns>
        Task<int> InsertAll(List<TrainingSiteBusinessHoursEntity> entities);

        /// <summary>
        /// 根据培训点配置ID获取培训点营业时间
        /// </summary>
        /// <param name="trainingSiteConfigId">培训点配置ID</param>
        /// <returns></returns>
        Task<IEnumerable<TrainingSiteBusinessHoursEntity>> GetByTrainingSiteConfigId(long trainingSiteConfigId);

        /// <summary>
        /// 更新培训点营业时间
        /// </summary>
        /// <param name="entities">培训点营业时间信息</param>
        /// <returns></returns>
        Task<int> UpdateAll(List<TrainingSiteBusinessHoursEntity> entities);

        /// <summary>
        /// 删除培训点营业时间
        /// </summary>
        /// <param name="trainingSiteConfigId">培训点配置ID</param>
        /// <returns></returns>
        Task<int> DeleteByTrainingSiteConfigId(long trainingSiteConfigId);

        /// <summary>
        /// 获取培训点营业时间
        /// </summary>
        /// <param name="trainingSiteConfigIds">培训点配置ID</param>
        /// <returns></returns>
        Task<IEnumerable<TrainingSiteBusinessHoursEntity>> GetListByConfigIds(List<long> trainingSiteConfigIds);

        /// <summary>
        /// 获取培训点营业时间
        /// </summary>
        /// <param name="dayOfWeek">营业日</param>
        /// <param name="trainingSiteConfigId">培训点配置ID</param>
        /// <returns></returns>
        Task<IEnumerable<TrainingSiteBusinessHoursEntity>> GetList(DayOfWeek dayOfWeek, long? trainingSiteConfigId);
    }
}
